package com.example.pattern.observer.impl;

import com.example.pattern.observer.Observer;
import java.util.List;
import java.util.ArrayList;

public class Subject {
    /**
     * 观察者容器
     */
    private List<Observer> container = new ArrayList<>();

    //添加观察者
    public void addObserver(Observer observer){
        container.add(observer);
    }

    //移除观察者
    public void removeObserver(Observer observer){
        container.remove(observer);
    }

    //通知观察者
    public void notifyEachObserver(){
        container.stream().forEach(observer -> observer.update(this));
    }

}
